package kamikaze;

import java.util.Arrays;
import java.util.Collection;

import kamikaze.service.IndexPage;
import kamikaze.service.LoginService;
import kamikaze.service.admin.AdminChangeUserStatusService;
import kamikaze.service.admin.AdminHomePage;
import kamikaze.service.admin.AdminListUserPage;
import kamikaze.service.cart.CheckOutPage;
import kamikaze.service.member.UserHomePage;
import kamikaze.service.member.UserRegistrationService;
import kamikaze.service.member.ViewTransactionHistoryPage;
import kamikaze.service.payment.CreatePaymentService;
import kamikaze.service.product.BrowseProductService;
import kamikaze.service.product.CreateProductPage;
import kamikaze.service.product.CreateProductService;
import kamikaze.service.product.DeleteProductService;
import kamikaze.service.product.DetailProductService;
import kamikaze.service.product.EditProductService;
import kamikaze.service.product.ListProductService;
import kamikaze.service.product.ProductAddToShoppingCartService;
import kamikaze.service.product.ProductRatingService;
import kamikaze.service.product.SaveProductRatingService;
import kamikaze.service.product.SearchProductService;
import kamikaze.service.product.ViewProductService;
import kamikaze.service.setup.SetupService;
import kamikaze.support.DispatchServlet;
import kamikaze.support.Service;

@SuppressWarnings("serial")
public class AppServlet extends DispatchServlet {

	@SuppressWarnings("unchecked")
	@Override
	protected Collection<? extends Class<? extends Service>> register() {
		return Arrays.asList(
				CreateProductPage.class,
				CreateProductService.class,
				DeleteProductService.class,
				EditProductService.class,
				BrowseProductService.class,
				ListProductService.class,
				SearchProductService.class,
				DetailProductService.class,
				ViewProductService.class,
				ProductRatingService.class,
				SaveProductRatingService.class,
				SetupService.class,
				LoginService.class,
				UserHomePage.class,
				UserRegistrationService.class,
				IndexPage.class,
				AdminHomePage.class,
				AdminListUserPage.class,
				AdminChangeUserStatusService.class,
				CheckOutPage.class,
				ProductAddToShoppingCartService.class,
				ViewTransactionHistoryPage.class,
				CreatePaymentService.class);
	}
}
